Conventional computer systems typically include a file system to manage storage of data used by applications executing on a computer. In general, the file system controls how digital information is stored and retrieved from a corresponding data storage system.
Applications typically operate on data in files using logical addresses. The applications communicate with the file system to access data in the data storage system. A logical-to-physical translation layer typically resides between the file system and the data storage system to facilitate access of corresponding data stored in the data storage system. For example, the translation layer facilitates access to stored data via conversion of logical addresses to corresponding physical addresses indicating where data is stored in the data storage system.
As a specific example of storing data in a data storage system, a user of a computer system can generate a command to store a file in the data storage system. In response to receiving the command (such as from an application controlled by the user), the file system communicates with the translation layer associated with a data storage system in order to store the file. As discussed above, the translation layer facilitates logical-to-physical mapping of the file to storage cells in the data storage system.
To store the file, the file system first allocates a region for the new file in the logical address space between the file system and the translation layer. That allocation can be done inside the file system, and can be based on the current state of the file system and requested task.
The next step is for the file system to store the data associated with the file in the allocated region, which typically will result in multiple requests to the translation layer. The translation layer typically partitions the request into chunks of data and then stores the chunks of data in free storage cells in the data storage system. In some cases, the free storage cells are not physically located near each other. This forces the file system to store the chunks at different locations in the data storage system to accommodate storage of the data. The file system keeps track of where the chunks of data are stored in the logical address space between the file system and translation layer so that it is possible to reconstruct the original file at a later time when requested by a corresponding computer user. The translation layer keeps track of where the data located in the logical address space is physically located in the storage medium.